package com.imooc.coupon.service;

import com.imooc.coupon.exception.CouponException;
import com.imooc.coupon.support.vo.CouponTemplateSDK;
import com.imooc.coupon.entity.CouponTemplate;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * 优惠券模板基础(操作)服务接口定义
 * Created By TINY
 * Create Time 2020/2/9 - 19:21
 **/
public interface TemplateBaseService {

    /**
     * 根据优惠券模板 id 构建优惠券模板信息
     * @param id 模板id
     * @return {@link CouponTemplate} 模板实体
     * @throws CouponException 系统业务异常
     */
    CouponTemplate buildTemplateInfo(Integer id) throws CouponException;

    /**
     * 查找所有可用的优惠券模板
     * @return {@link CouponTemplateSDK} 优惠券模板集合
     */
    List<CouponTemplateSDK> findAllUsableTemplate();

    /**
     * 找到所有与ids中对应的优惠券模板的集合，以Map形式返回
     * @param ids 目标优惠券id集合
     * @return 符合条件的优惠券模板
     */
    Map<Integer, CouponTemplateSDK> findIds2TemplateSDK(Collection<Integer> ids);
}
